import axiosInstance from '@/utils/request.js'

/**
 * 上传聊天文件（图片/视频/文件）
 * @param {File} file - 要上传的文件（必选）
 * @param {string} bucket - 存储桶名称（可选）
 * @returns {Promise} - Axios Promise
 */
export function uploadMessageFile({ file, bucket }) {
  // 创建 FormData 对象
  const formData = new FormData()
  formData.append('file', file) // 必须与后端 @RequestParam("file") 名称一致
  if (bucket) formData.append('bucket', bucket) // 可选参数

  return axiosInstance
    .post('/oss/upload/message-file', formData, {
      // 重要：上传文件需设置此配置（Axios 会自动处理 Content-Type 为 multipart/form-data）
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
    .then((response) => {
      console.log('文件上传成功:', response.data)
      return response.data // 返回后端响应数据（如文件 URL）
    })
    .catch((error) => {
      console.error('文件上传失败:', error)
      throw error // 抛出错误以便调用处处理
    })
}
